const fs = require("fs")
const path = require("path")
// console.log(fs);    
//如可操作文件 
    // 读取文件
       
        //  let filePath = __dirname+"02-02-fs的操作/index.js"
         let  filePath = path.join(__dirname,"index.html") // index
         let  index = path.join(__dirname,"index2.html") // index2
         let  indexs = path.join(__dirname,"index.js") // index2
         let  md = path.join(__dirname,"text.md") // 
         let src =  path.join(__dirname) // 

         
         console.log(filePath);
         
        //参数 ：url 字符显示编码规范 返回值就是读取到的文件内容
        //fs 操作中所有的路径 全部写成 绝对路径

         //加 Sync 同步指向
         let str =   fs.readFileSync(filePath,"utf-8")
    // 写入文件
        //参数 ： 要写入文件的路径 ， 要写入的内容 ， 字符显示编码规范 
        //没有返回值 
        fs.writeFileSync(index,str,"utf-8")
        let str2 =   fs.readFileSync(index,"utf-8")
        console.log(str,str2);
        //如果文件不存在， 会自动创建 ，如果已经存在， 会完全覆盖目标文件内容

        //文件拷贝
    //删除文件
    //如果文件路径无效会报错
    // fs.unlinkSync(indexs)//参数为 删除文件的路径
        // 判断资源是否存在
        //fs.existsSync()//传入我们要判断的路径 返回值是布尔值 如果资源存放在返回 true 不存在返回 false
       let resule =   fs.existsSync(md)


       //判断资源文件还剩目录
      // fs.statSync()//参数 要判断的路径  返回一个资源对象 有判断文件还是目录的方法
      

         if(resule) {
           console.log("资源存在");
           const obj = fs.statSync(md)
           // 判断资源是否为文件 或 目录
                // fs.statSync(md).isFile()是否 为文件
                //  fs.statSync(md).isDirectory()是否 为目录
                if (fs.statSync(md).isFile()) {
                    console.log( "资源为文件");
                }else{
                    console.log( "资源为目录");
                }
                if (fs.statSync(md).isDirectory()) {
                    console.log( "资源为目录");
                }else{
                    console.log( "资源为文件");
                }
               let a =fs.statSync(md).isFile()
               let b =  fs.statSync(md).isDirectory()
           console.log(a,b);
       }else{
           console.log("资源无效");
       }

       //目录操作 
            // 读取目录
         let srclist = fs.readdirSync(src) //当前目录下所有文件名称组成的数组
         console.log(srclist);
         console.log(Array.isArray(srclist));//true
            //创建目录
            let ff = path.join(__dirname,"/dist") //创建目录 为创建的目录路径 如果已有会报错
            // fs.mkdirSync(ff) // 不能重新创建
            //删除目录
            // fs.rmdirSync(ff) //只能是空目录 否则报错
            // 思考题  ： 目录的拷贝  如何删除一个目录   如何把一个目录写成json数据
            //目录 拷贝 、
             
                //  将需要拷贝的目录的绝对路径传入
                //  创建一个拷贝的目录
                //  拿到目录下所有文件名称组成的数组
                //  遍历数组中的文件名称 判断是文件还是目录
                //  如果是目录就将目录的绝对路径 储存到一个数组中
                //  遍历完之后再次调用此方法
             